
package com.bootx.common;

/**
 * 公共参数
 *
 * @author 好源++ Team
 * @version 6.1
 */
public final class CommonAttributes {

    /**
     * 日期格式配比
     */
    public static final String[] DATE_PATTERNS = new String[]{"yyyy", "yyyy-MM", "yyyyMM", "yyyy/MM", "yyyy-MM-dd", "yyyyMMdd", "yyyy/MM/dd", "yyyy-MM-dd HH:mm:ss", "yyyyMMddHHmmss", "yyyy/MM/dd HH:mm:ss"};

    public static final String PROMPT = """
                    这是一个抢红包的记录，包含了发的红包数量（如果没有就是0），发的金额（如果没有就是0）以及抢红包的人信息（昵称，金额，时间）。
                    请将其解析出来，按照json格式进行返回。
                    红包数量用count表示，没有解析出数量用0表示，
                    发的金额用amount表示，没有解析出金额用0表示，
                    昵称用name表示，用户抢的红包金额用amount表示，用户抢的时间用time表示，其中金额是数字类型，时间采用HH:mm:ss的格式。
                    注意：由于用户截图的完整性问题，会出现部分用户信息解析不全的情况，一但发现抢的红包金额或时间未解析出来，请不要自行填充，将这部分数据丢弃掉。
                    需要严格按照下面的格式输出：{"count":19,"amount":12.5,"redPackageItemList":[{"name":"张三","amount":0.13,"time":"10:51:13"}]}
            """;
    public static final String PARSE_PROMPT = """
            		你现在是一名红包预测大师。用户将会提供最近抢包数据,下一期红包个数和红包的总金额。
            		用户提供的数据格式说明如下：
            		batchId: 是每一期的红包编号，编号相同说明这些红包是由某一轮红包发出的
            		count: 当前期的红包数量
            		openInfo: 每个红包的数据。格式如下：125:4;250:6;375:3;500:1。
            		每一个红包的数据由“;”分割，每一个红包的具体信息（抢包时间，红包金额小数两位的和）。
            		比如：125:4;250:6;375:3;500:1：说明是4个红包，其中第1个红包的抢包时间是125毫秒，金额小数两位之和是4，第2个红包的抢包时间是250毫秒，金额小数两位之和是6，第3个红包的抢包时间是375毫秒，金额小数两位之和是3，第4个红包的抢包时间是500毫秒，金额小数两位之和是3。
            		现在需要你预测出下一轮红包中红包金额小数两位的和为10最可能出现的位置和抢包时间。
            		返回格式必须是单行 JSON，**不要**添加换行、说明、markdown 格式，直接输出如下格式：
            		[{"sum": 10, "position": 3,"openTime":2500}]
            		sum:红包金额小数两位的和,position:出现的是第几个红包。如果是第1个红包，position是1，以此类推，openTime是抢包的时间，单位是毫秒
            """;

    public static final String PROMPT2 = """
            		图片包含如下信息：
            		当前期数，下注人数，下注金额，发包人数，应包金额，咸家**秒超时
            		希望你能解析出上面的数据出来。
            		其中当前期数用sn表示，下註人数用people表示，下註总额用total表示，发饱人数用redPackageCount表示，应发金额用amount表示，**秒不超时用seconds表示。
            		如果某个信息解析不出来，用-1表示
            		返回格式必须是单行 JSON，**不要**添加换行、说明、markdown 格式，直接输出如下格式：
            		{"redPackageCount": 32, "amount": 16.00,"seconds":10}
            """;
    public static final String PARSE_PROMPT1 = """
            		你现在是一名红包预测大师。用户将会提供最近抢包数据,下一期红包个数和红包的总金额。
            		用户提供的数据格式说明如下：
            		batchId: 是每一期的红包编号，编号相同说明这些红包是由某一轮红包发出的
            		count: 当前期的红包数量
            		openOddInfo: 每个红包的数据。格式如下：1:125:0;2:251:0;3:375:1;4:500:0。
            		每一个红包的数据由“;”分割，每一个红包的具体信息（红包序号，抢包时间，红包金额小数两位的和的单双，0：表示双，1：表示单）。
            		比如：1:125:0;2:251:0;3:375:1;4:500:0：说明是4个红包，其中第1个红包的抢包时间是125毫秒，尾数为双，第2个红包的抢包时间是250毫秒，尾数为双，第3个红包的抢包时间是375毫秒，尾数为单，第4个红包的抢包时间是500毫秒，尾数为双。
            		现在需要你预测出下一轮红包中红包金额小数两位的和是奇数最可能出现的位置和抢包时间。
            		返回格式必须是单行 JSON，**不要**添加换行、说明、markdown 格式，直接输出如下格式：
            		[{"isOdd": 0, "position": 3,"openTime":2500}]
            		isOdd:红包金额小数两位之和的奇偶性,position:出现的是第几个红包。如果是第1个红包，position是1，依次类推，openTime是抢包的时间，单位是毫秒。
            """;
    public static final String PARSE_PROMPT2 = """
                  你是一个红包数据分析师。
                  给定多轮红包数据，每轮数据只包含红包金额小数点后两位数字之和的红包记录，格式如下：
                  轮次(人数): 序号(金额@时间毫秒)
                  示例：
                  轮20250620212913(23): 3(0.36@2250),4(0.07@2375),8(0.31@2875),...
                  请基于所有轮次数据，完成以下任务：
                  1. 统计所有红包中，每个位置（即 order）出现的次数，找出出现次数最多的前 5 个位置。
                  3. 计算该位置所有红包的平均 openTime（单位毫秒，保留整数）和rate（出现的概率，保留2位小数）。
                  4. 如果发现openTime超过5000或者序号超过20，忽略这条。
                  5. 返回结果不要包含分析过程。
                  6. 返回格式必须是单行 JSON，**不要**添加换行、说明、markdown 格式，直接输出如下格式：：
                  [{"isOdd": 1, "position": 序号, "openTime": 平均值,"rate":概率}]
                  【计算奇数和规则】
                  金额如0.17 → 1+7=8(偶数，不包含)
                  金额如0.36 → 3+6=9(奇数，包含)
                  请在判断出现概率时，引入“最近出现惩罚逻辑”：
                  1. 如果某个红包位置在最近一轮中出现为奇数，则将其出现概率下调 1%
                  2. 如果在最近两轮都出现为奇数，则共下调 2%
                  2. 如果在最近三轮都出现为奇数，则共下调 4%
                  2. 如果在最近四轮都出现为奇数，则共下调 8%
                  3. 依此类推，但最多下调不超过 20%
            """;

    /**
     * 不可实例化
     */
    private CommonAttributes() {
    }

}